package leecode

import (
	"fmt"
	"strings"
)

func isValid(s string) bool {
	if len(s) < 2 {
		return false
	}
	valid := make([]string, 0, len(s))
	arr := strings.Split(s, "")
	for _, value := range arr {
		if len(valid) == 0 && (value == "]" || value == "}" || value == ")") {
			return false
		}
		if value == "(" {
			//( 入栈
			valid = append(valid, ")")
		} else if value == "{" {
			valid = append(valid, "}")
		} else if value == "[" {
			valid = append(valid, "]")
		} else if value == ")" {
			fmt.Println(len(valid))
			//在栈顶寻找)
			if valid[len(valid)-1] != ")" {
				return false
			} else {
				valid = valid[:len(valid)-1]
			}
		} else if value == "}" {
			fmt.Println(len(valid))
			//在栈顶寻找)
			if valid[len(valid)-1] != "}" {
				return false
			} else {
				valid = valid[:len(valid)-1]
			}
		} else if value == "]" {
			fmt.Println(len(valid))
			//在栈顶寻找)
			if valid[len(valid)-1] != "]" {
				return false
			} else {
				valid = valid[:len(valid)-1]
			}
		}
	}
	return len(valid) == 0
}
